package com.xiejr.api.dto.order;

import com.xiejr.model.entity.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("订单表;数据传输对象")
public class OrdersDTO extends BaseEntity.BaseDTO {
    private static final long serialVersionUID = -33234796279673494L;
    /**
     * 订单主键;同时也是订单编号
     */
    @ApiModelProperty(value = "订单主键;同时也是订单编号")
    @NotEmpty(message = "订单主键;同时也是订单编号不得为空")
    private String id;


    /**
     * 用户id
     */
    @ApiModelProperty(value = "用户id")
    @NotEmpty(message = "用户id不得为空")
    private String userId;


    /**
     * 收货人快照
     */
    @ApiModelProperty(value = "收货人快照")
    @NotEmpty(message = "收货人快照不得为空")
    private String receiverName;


    /**
     * 收货人手机号快照
     */
    @ApiModelProperty(value = "收货人手机号快照")
    @NotEmpty(message = "收货人手机号快照不得为空")
    private String receiverMobile;


    /**
     * 收货地址快照
     */
    @ApiModelProperty(value = "收货地址快照")
    @NotEmpty(message = "收货地址快照不得为空")
    private String receiverAddress;


    /**
     * 订单总价格
     */
    @ApiModelProperty(value = "订单总价格")
    @NotNull(message = "订单总价格不得为空")
    private Double totalAmount;


    /**
     * 实际支付总价格
     */
    @ApiModelProperty(value = "实际支付总价格")
    @NotNull(message = "实际支付总价格不得为空")
    private Double realPayAmount;


    /**
     * 邮费;默认可以为零，代表包邮
     */
    @ApiModelProperty(value = "邮费;默认可以为零，代表包邮")
    @NotNull(message = "邮费;默认可以为零，代表包邮不得为空")
    private Double postAmount;


    /**
     * 支付方式;1：微信，2：支付宝
     */
    @ApiModelProperty(value = "支付方式;1：微信，2：支付宝")
    @NotNull(message = "支付方式;1：微信，2：支付宝不得为空")
    private Integer payMethod;


    /**
     * 买家留言
     */
    @ApiModelProperty(value = "买家留言")
    @NotEmpty(message = "买家留言不得为空")
    private String leftMsg;


    /**
     * 扩展字段
     */
    @ApiModelProperty(value = "扩展字段")
    @NotEmpty(message = "扩展字段不得为空")
    private String extand;


    /**
     * 买家是否评价;1：已评价，0：未评价
     */
    @ApiModelProperty(value = "买家是否评价;1：已评价，0：未评价")
    @NotNull(message = "买家是否评价;1：已评价，0：未评价不得为空")
    private Integer isComment;


    /**
     * 逻辑删除状态;1: 删除 0:未删除
     */
    @ApiModelProperty(value = "逻辑删除状态;1: 删除 0:未删除")
    @NotNull(message = "逻辑删除状态;1: 删除 0:未删除不得为空")
    private Integer isDelete;


    /**
     * 创建时间（成交时间）
     */
    @ApiModelProperty(value = "创建时间（成交时间）")
    @NotNull(message = "创建时间（成交时间）不得为空")
    private LocalDateTime createdTime;


    /**
     * 更新时间
     */
    @ApiModelProperty(value = "更新时间")
    @NotNull(message = "更新时间不得为空")
    private LocalDateTime updatedTime;


    /**
     * 交易成功可获得积分数
     */
    @ApiModelProperty(value = "交易成功可获得积分数")
    @NotNull(message = "交易成功可获得积分数不得为空")
    private Integer points;


}